package com.yonyougov.cruxtestcase.testcase.user.dto;

import java.util.Date;

public class User {
    private Long id;
    private Long createBy;
    private Date createTime;
    private Long lastModifiedBy;
    private Date updateTime;
    private Integer lastModifiedVersion;
    private Boolean deleted;

    private String code; // 用于显示、打印、要素树的编码显示，对应6.x的 chr_code
    private String name; // 用于显示、打印、要素树的名称显示，对应6.x的 chr_name
    private Boolean enabled; // 是否启用

    private Long credentials;
    private UserType userType;
    private Long mofdep;
    private Long dept;

    private String idNumber; // 身份证号
    private String password; // 密码
    private Long gender; // 用户性别
    private String telephone; // 用户固定联系电话
    private String mobile; // 用户移动电话
    private String headshipCode; // 用户的职务，例如处长、科员等
    private Date birthday; // 用户的出生日期，统计用
    private String address; // 用户的家庭住址，可用于紧急联系
    private String email; // 用户的电子邮件，未来可能用于向用户发通知
    private Boolean audited; // 审核是否通过
    private Date auditDate; // 审核时间： YYYY-MM-DD HH:MM:SS
    private String auditUser; // 审核用户
    private String nickname; // 用户昵称
    private Long organization; // 保存对应所属机构基础数据的值 //机构类型，记录要素简码
    private OrgType belongType; // 所属机构类型，例如区划、预算单位、业务处室、银行
    private Boolean passwordChanged; // 是否修改过密码
    private Boolean locked; // 是否永久锁定
    private Boolean office;
    private Long mofDiv;
    private AuthenticateType authenticate;
    private String ca;
    private String photoUrl;
    private Long person;
    private String remark;

    public enum AuthenticateType {
        PASSWORD,
        CA
    }

    public enum UserType {
        FINANCES,
        AGENCY,
        BANK,
        OTHER,
        DEVOPS
    }

    public enum OrgType {
        MofDiv,
        Agency,
        Bank
    }
}
